﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ahao.LeetCode.Medium.demo117
{
    public class Class117
    {
        public Node Connect(Node root)
        {
            var pd = new Node() { next = root };
            while (pd.next != null)
            {
                var pnode = pd.next;
                var dummy = new Node();
                var tail = dummy;
                while (pnode != null)
                {
                    if (pnode.left != null)
                        tail = tail.next = pnode.left;
                    if (pnode.right != null)
                        tail = tail.next = pnode.right;
                    pnode = pnode.next;
                }
                pd = dummy;
            }
            return root;
        }
    }

    public class Node
    {
        public int val;
        public Node left;
        public Node right;
        public Node next;

        public Node()
        {
        }

        public Node(int _val)
        {
            val = _val;
        }

        public Node(int _val, Node _left, Node _right, Node _next)
        {
            val = _val;
            left = _left;
            right = _right;
            next = _next;
        }
    }

}
